Gavin Williams put on a show, taking a no-hitter into the ninth inning, and Angel Martinez clubbed a two-run shot as the Cleveland Guardians defeated the New York Mets 4-1.